package com.night.icm.model.business;

import com.night.icm.common.utils.TermType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * StudentCourseGradeDTO
 *
 * @author Liao ZhiYong
 * @date 2020/2/5
 */
@ApiModel(description = "学生课程成绩")
@Data
public class StudentCourseGradeDTO {

    @ApiModelProperty(position = 110, value = "学生课程成绩id，自增")
    private String id;

    @ApiModelProperty(position = 120, value = "年度，比如：2020年-2021年第一和第二学期都是2020年度的成绩")
    @NotNull
    @Size(max = 4)
    private String year;

    @ApiModelProperty(position = 130, value = "第一或第二学期，也叫上学期和下学期")
    private TermType termType;

    @ApiModelProperty(position = 140, value = "学院名称")
    private String academyName;

    @ApiModelProperty(position = 150, value = "课程编号")
    private String courseCode;

    @ApiModelProperty(position = 160, value = "课程名称")
    private String courseName;

    @ApiModelProperty(position = 170, value = "学生学号")
    private String studentCode;

    @ApiModelProperty(position = 180, value = "学生姓名")
    private String studentName;

    @ApiModelProperty(position = 190, value = "行政班级，如计算机163班")
    private String className;

    @ApiModelProperty(position = 200, value = "课程学分")
    private Double credit;

    @ApiModelProperty(position = 210, value = "课程类别，从SC表中的课程信息中获取")
    private String courseType;

    @ApiModelProperty(position = 220, value = "考核方式: 考查/考试")
    private String evaluationMode;

    @ApiModelProperty(position = 230, value = "修读性质：初修、重修、补考")
    private String property;

    @ApiModelProperty(position = 240, value = "成绩，优良差或数字")
    private String grade;

    @ApiModelProperty(position = 250, value = "取得学分")
    private Double getCredit;

    @ApiModelProperty(position = 260, value = "取得绩点，非课程绩点")
    private Double gradePoint;

    @ApiModelProperty(position = 270, value = "学分绩点")
    private Double creditGradePoint;

    @ApiModelProperty(position = 280, value = "是否已批改")
    private Boolean isCorrect;

    @ApiModelProperty(position = 280, value = "备注")
    private String remark;
}